const { sequelize } = require('./config/database');
const app = require('./app');

// 设置端口
const PORT = process.env.PORT || 3000;

// 同步数据库并启动服务器
async function startServer() {
  try {
    // 同步数据库模型
    console.log('正在同步数据库模型...');
    await sequelize.sync();
    console.log('数据库模型同步成功！');

    // 启动服务器
    app.listen(PORT, () => {
      console.log(`服务器已启动，访问 http://localhost:${PORT}`);
      console.log('提示: 你可以使用下面的命令测试API:');
      console.log(`  curl http://localhost:${PORT}/api/weather/北京/北京`);
    });
  } catch (error) {
    console.error('启动服务器失败:', error);
    process.exit(1);
  }
}

// 处理未捕获的异常
process.on('uncaughtException', (error) => {
  console.error('未捕获的异常:', error);
  process.exit(1);
});

// 处理未处理的Promise拒绝
process.on('unhandledRejection', (error) => {
  console.error('未处理的Promise拒绝:', error);
  process.exit(1);
});

// 启动服务器
startServer(); 